package com.aracky.assess.service;

import com.aracky.assess.model.entity.HrKpiPostPerformanceConfig;
import com.aracky.assess.model.request.HrKpiPostPerformanceConfigRequest;
import com.aracky.assess.model.request.PostDeptRequest;
import com.aracky.assess.model.vo.HrKpiPostPerformanceConfigTableVO;
import com.aracky.assess.model.vo.HrKpiPostPerformanceConfigVO;
import com.aracky.assess.model.vo.PerformanceAssessorTableVO;
import com.aracky.assess.model.vo.PostDeptVO;
import com.aracky.common.vo.PageVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 岗位考核指标配置 服务类
 * </p>
 *
 * @author zzp
 * @since 2022-08-01 09:43:18
 */
public interface HrKpiPostPerformanceConfigService extends IService<HrKpiPostPerformanceConfig> {
    /**
     * 查询列表
     * @param hrKpiPostPerformanceConfigRequest
     * @return
     */
    PageVO<HrKpiPostPerformanceConfigVO> getHrKpiPostPerformanceConfigList(HrKpiPostPerformanceConfigRequest hrKpiPostPerformanceConfigRequest);

    /**
     * 分页查询出指定岗位考核指标的详情
     * @param hrKpiPostPerformanceConfigRequest
     * @return
     */
    PageVO<HrKpiPostPerformanceConfigVO> getPageList(HrKpiPostPerformanceConfigRequest hrKpiPostPerformanceConfigRequest);

    /**
     * 分页查询岗位部门列表信息
     * @param postDeptRequest
     * @return
     */
    PageVO<PostDeptVO> getPostDept(PostDeptRequest postDeptRequest);

    /**
     * 查询详情表信息
     * @param hrKpiPostPerformanceConfigRequest
     * @return
     */
    PerformanceAssessorTableVO getDetailTable(HrKpiPostPerformanceConfigRequest hrKpiPostPerformanceConfigRequest);

    /**
     * 查询岗位指标列表信息
     * @param hrKpiPostPerformanceConfigRequest
     * @return
     */
    List<HrKpiPostPerformanceConfigVO> getList(HrKpiPostPerformanceConfigRequest hrKpiPostPerformanceConfigRequest);

    /**
     * 逐条修改岗位指标列表
     * @param hrKpiPostPerformanceConfigList
     */
    void updatePostPerformanceConfigList(List<HrKpiPostPerformanceConfig> hrKpiPostPerformanceConfigList) throws Exception;

    /**
     * 根据postId查询岗位指标列表
     * @param postId
     * @return
     */
    HrKpiPostPerformanceConfigTableVO getListByPostId(Long postId);
}
